// src/commands/system_ops/kill.rs
use std::process::Command;

pub fn execute(args: &[String]) {
    // 检查参数数量
    if args.len() < 1 {
        eprintln!("用法: kill <PID>");
        return;
    }

    let pid: u32 = match args[0].parse() {
        Ok(pid) => pid,
        Err(_) => {
            eprintln!("错误: 无效的 PID '{}'", args[0]);
            return;
        }
    };

    // 使用 taskkill 命令终止进程
    let output = Command::new("taskkill")
        .arg("/PID")
        .arg(pid.to_string())
        .arg("/F") // 强制终止进程
        .output();

    match output {
        Ok(output) => {
            if output.status.success() {
                println!("成功: 终止进程 {}", pid);
            } else {
                let err = String::from_utf8_lossy(&output.stderr);
                eprintln!("错误: 无法终止进程 {}: {}", pid, err);
            }
        }
        Err(e) => eprintln!("错误: 执行 taskkill 失败: {}", e),
    }
}
